<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="./templates/templateMenu.xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.prime.com.tr/ui"
                xmlns:h="http://java.sun.com/jsf/html">

    <ui:define name="content">
        <script type="text/javascript"> //Reactualiza la tabla luego de eliminar pues necesitaria doble actualizacion
            function confirmFunction() {
                updateConfirm.jq.click();
            }
                  function openPopupFunction() {
                      openPopup.jq.click();
                  }
            
                  function doPopup(source,title){
                        popup=window.open (source, "popup", "height=600, width=900");
                        popup.document.title = title;
                        popup.focus();                      
                  }            
        </script>

        <p:panel header="Resgistro de Nuevo Año Academico">
            <h:panelGrid columns="3" id="frmAnio" >
                <h:outputText value="Nuevo Año Escolar:"/>
                <p:spinner id="txtAnioActual" 
                           min="1950" 
                           stepFactor="1" 
                           required="true"
                           requiredMessage="Requerido" 
                           value="#{anioEscolar.anio.nuAnio}"/>
                <p:message for="txtAnioActual"/>

                <h:outputText value="Fecha de Inicio:"/>
                <p:calendar id="txtInicio" 
                            showOn="button" 
                            required="#{param['requireGroup1'] == '1'}"
                            requiredMessage="Requerido"
                            pattern="dd/MM/yyyy"
                            locale="es"
                            navigator="true"
                            value="#{anioEscolar.anio.daFechaInicio}"
                            binding="#{txtInicio}"
                            readOnlyInputText="true"/>
                <p:message for="txtInicio"/>

                <h:outputText value="Fecha de Finalizacion:"/>
                <p:calendar id="txtFinalizacion"
                            showOn="button" 
                            required="#{param['requireGroup1'] == '1'}"
                            requiredMessage="Requerido"
                            pattern="dd/MM/yyyy"
                            locale="es"
                            value="#{anioEscolar.anio.daFechaFinal}"
                            navigator="true"
                            readOnlyInputText="true">
                    <f:attribute name="fechaInicio" value="#{txtInicio.value}"/>
                    <f:validator validatorId="fechaValidator" disabled="#{param['requireGroup1'] != '1'}" />
                </p:calendar>
                <p:message for="txtFinalizacion"/>

                <h:outputText value="Establecer como Año Activo:"/>
                <h:selectBooleanCheckbox id="chkEstado" 
                                         style="text-align: center" 
                                         value="#{anioEscolar.anio.boEstado}" />
                <h:outputText/>
            </h:panelGrid>

            <h:panelGrid style="width: 100%">
                <p:toolbar>
                    <p:toolbarGroup align="left">      
                        <p:commandButton value="Nuevo" 
                                         title="Nuevo"
                                         action="#{anioEscolar.nuevo}"
                                         process="@this "
                                         update="frmAnio"
                                         image="ui-icon-document"/>
                        <p:commandButton value="Guardar"
                                         action="#{anioEscolar.crear}"
                                         process="@this frmAnio"
                                         oncomplete="confirmFunction();"
                                         update="frmAnio msg dtAnio"
                                         title="Guardar" 
                                         image="ui-icon-disk">
                            <f:param name="requireGroup1" value="1"/>
                        </p:commandButton> 
                    </p:toolbarGroup>
                </p:toolbar>
            </h:panelGrid>

            <p:dataTable id="dtAnio" 
                         widgetVar="dtAnio"                                        
                         rows="10" 
                         paginator="true" 
                         var="anios" 
                         value="#{anioEscolar.aniosEscolares}"
                         onRowEditUpdate="msg">

                <f:facet name="header">  
                    <h:panelGrid style="width: 200px;" 
                                 columnClasses="alignLeft,alignLeft,alignLeft" 
                                 columns="3">
                        <h:outputText value="Buscar: " />  
                        <p:inputText  id="globalFilter" 
                                      onkeyup="dtAnio.filter()" 
                                      style="width:150px" />  
                    </h:panelGrid> 
                </f:facet>  

                <p:column filterBy="#{anios.nuAnio}" filterStyle="display:none"
                          headerText="Año" 
                          style="text-align: center; width: 60px;">
                    <h:outputText value="#{anios.nuAnio}"/>
                </p:column>

                <p:column filterBy="#{anios.daFechaInicio}" filterStyle="display:none"
                          headerText="Fecha Inicio" 
                          style="text-align: center;"> 
                    <h:outputText value="#{anioEscolar.getStringDate(anios.daFechaInicio)}" />
                </p:column> 

                <p:column filterBy="#{anios.daFechaFinal}" filterStyle="display:none"
                          headerText="Fecha Finalizacion" 
                          style="text-align: center;">
                    <h:outputText value="#{anioEscolar.getStringDate(anios.daFechaFinal)}"/>
                </p:column> 

                <p:column filterBy="#{anios.boEstado}" filterStyle="display:none"
                          headerText="Estado"
                          style="text-align: center; width: 60px;">
                    <h:selectBooleanCheckbox value="#{anios.boEstado}"/>
                </p:column>  
                <p:column style="text-align: center; width: 80px;">
                    <p:commandLink value="Consolidado Matricula" 
                                   title="Imprimir Consolidado Matricula"
                                   oncomplete="openPopupFunction()" 
                                   update="opPopup" 
                                   process="@this" 
                                   action="#{anioEscolar.imprimir}">
                        <f:setPropertyActionListener value="#{anios}" target="#{anioEscolar.selectedAnio}" /> 
                        <f:attribute name="informe" 
                                         value="consolidado" />
                    </p:commandLink>
                </p:column>  
                <p:column style="text-align: center; width: 80px;">
                    <p:commandLink value="Informe de Ingresos" 
                                   title="Imprimir Informe de Ingresos"
                                   oncomplete="openPopupFunction()" 
                                   update="opPopup" 
                                   process="@this" 
                                   action="#{anioEscolar.imprimir}">
                        <f:setPropertyActionListener value="#{anios}" target="#{anioEscolar.selectedAnio}" />  
                        <f:attribute name="informe" 
                                         value="ingresos" />
                    </p:commandLink>
                </p:column>                 
                <p:column style="width: 75px; text-align: center; " headerText="Acciones" >  
                    <f:facet name="header"/>
                    <!-- <p:rowEditor/> ROWEDITOR PARA MODIFICAR -->
                    <p:commandButton  image="ui-icon-pencil" 
                                      title="Modificar Año"
                                      action="#{anioEscolar.modificar}"
                                      update="frmAnio"
                                      process="@this">  
                        <f:setPropertyActionListener value="#{anios}" target="#{anioEscolar.selectedAnio}" />
                    </p:commandButton>  
                    <p:commandButton  image="ui-icon-trash"
                                      title="Eliminar Año"
                                      oncomplete="confirmation.show()" 
                                      update="confirm" 
                                      process="@this">  
                        <f:setPropertyActionListener value="#{anios}" target="#{anioEscolar.selectedAnio}" />
                    </p:commandButton>  
                </p:column> 
            </p:dataTable>
        </p:panel>
        <p:confirmDialog message="Desea eliminar el registro?" 
                         width="400"   
                         header="Confirm" 
                         severity="alert" 
                         widgetVar="confirmation" 
                         modal="true">  
            <p:outputPanel id="confirm">
                <h:panelGrid>
                    <h:outputText  value="Año: #{anioEscolar.selectedAnio.nuAnio}"/>
                    <h:panelGrid columns="2">
                        <p:commandButton value="Si" 
                                         update="dtAnio frmAnio msg"
                                         action="#{anioEscolar.eliminar}" 
                                         oncomplete="confirmation.hide(); confirmFunction(); dtAnio.filter()" 
                                         process="@this">
                            <f:param name="idAnio" 
                                     value="#{anioEscolar.selectedAnio.nuAnio}"/>
                        </p:commandButton>
                        <p:commandButton value="No" 
                                         onclick="confirmation.hide()" 
                                         type="button" />   
                    </h:panelGrid>
                </h:panelGrid>
            </p:outputPanel>
        </p:confirmDialog>
        <p:commandButton style="visibility: hidden" 
                         widgetVar="updateConfirm"
                         oncomplete="dtAnio.filter()" 
                         update="dtAnio msg"/>
        <p:outputPanel id="opPopup">
            <p:commandButton id="openPopup"
                             style="visibility: hidden" 
                             onclick="doPopup('#{anioEscolar.url}',  'Consolidado de Matricula')" 
                             widgetVar="openPopup"/>            
        </p:outputPanel>
    </ui:define>
</ui:composition>
